package proxy.dynamicproxy;

import java.lang.reflect.Proxy;

import lombok.AllArgsConstructor;

/**
 * 动态代理
 * @author DFD
 * @date 2023年11月20日
 */
@AllArgsConstructor
public class ProxyFactory {
	// 被代理类
	private Object proxy;

	public Object getProxyInstance() {
		return Proxy.newProxyInstance(proxy.getClass().getClassLoader(), proxy.getClass().getInterfaces(),
				(proxy, method, args) -> {
					System.out.println("JDK代理开始~~");
					Object returnVal = method.invoke(this.proxy, args);
					System.out.println("JDK代理提交");
					return returnVal;
				});
	}
}
